package InitializeOrder;
/**
 * @author wdj
 * 测试的主类
 */
public class ClassOrderMain {

	public static void main(String[] args) {
		
		/*OrderSon son = new OrderSon();
		son.say();
		System.out.println("*****************************");
		
		OrderFather father = new OrderFather();
		father.say();
		System.out.println("*****************************");*/
		
		OrderFather father_son = new OrderSon();
		father_son.say();
		/*
		         父类静态初始化器
			父类成员变量=父类Msg
			子类静态初始化器
			子类成员变量=子类Msg
			父类的构造函数
			父类构造函数中，父类成员变量=父类Msg
			子类构造函数
			构造函数中，子类类成员变量=子类Msg
			子类说点什么，子类还是父类=子类Msg
		 * */
		
	}
}

//总结：
/*
 * 可以看到，无论是父类还是子类，静态初始化器只执行一次，且父类的初始化器优先于子类的初始化器执行。

        如果大家够仔细，debug一下，就可以看到父类还是子类，都是按照如下顺序来执行的。

       初始化成员变量->执行初始化器->执行构造函数

*/